home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 05 Programming / CDT128.ARC / CONV.C < prev    next >
Text File  |  2019-04-13  |  1KB  |  56 lines

  1. /***********************************************************************/
  2. /***********************************************************************/
  3. /*                                                                     */
  4. /* ╘HIS PROGRAM IS COPYRIGHT 1986 BY ┴LAN ┘ORINKS.  ╔T MAY BE FREELY   */
  5. /* DISTRIBUTED FOR NON COMMERCIAL USAGE IF THIS COPYRIGHT NOTICE IS    */
  6. /* LEFT INTACT. ├OMMERCIAL USAGE OF THIS PROGRAM IS EXPLICITLY         */
  7. /* FORBIDDEN WITHOUT THE WRITTEN PERMISSION OF THE AUTHOR.             */
  8. /*                                                                     */
  9. /***********************************************************************/
  10. /***********************************************************************/
  11.  
  12.  
  13. /*     CDT VERSION 1.0    PART 5 OF 15   ╩ULY 25, 1986                 */
  14.  
  15.  
  16. /*   HEX ASCII STRING TO INTEGER CONVERTER   */
  17.  
  18. UNSIGNED
  19. HATOI(STRING)
  20.     CHAR        *STRING ;
  21.  
  22.     UNSIGNED    VAL = 0 ;
  23.     UNSIGNED    HEXTONBL() ;
  24.  
  25.  
  26.     WHILE( *STRING )   /* READ CHARACTERS UNTIL \0 IS FOUND */
  27.         VAL = ( VAL << 4 ) + HEXTONBL( *STRING++ ) ;
  28.     RETURN VAL ;
  29.  
  30.  
  31. /*   ASCII HEX CHARACTER TO HEX NIBBLE CONVERSION */
  32.  
  33. UNSIGNED
  34. HEXTONBL(C)
  35.     UNSIGNED C ;
  36.     IF( C >= '0' && C <= '9')
  37.         C -= '0' ;
  38.  
  39.     ELSE IF( C >= '┴' && C <= '╞' )
  40.         C += 10 - '┴' ;
  41.  
  42.     ELSE IF( C >= 'A' && C <= 'F' )
  43.         C += 10 - 'A' ;
  44.  
  45.     ELSE
  46.     █
  47.         PRñUSAGE(6) ;
  48.         ABORT() ;
  49.     ▌
  50.  
  51.     RETURN C ;
  52.